package com.wenli.graduate2022.wenliGreenShop.repository.mapper;

import com.wenli.graduate2022.wenliGreenShop.entity.Admin;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;

/**
 * @author HuangHai
 * @date 2021/10/5 14:40
 */
@Repository
public interface AdminMapper {

    @Select("select * from admin where admin_name = #{name} and admin_password = #{psd}")
    Admin adminLogin(String name,String psd);

    @Select("select * from admin where admin_id = #{id}")
    Admin findById(Integer id);

    /**
     * 这个修改方法里要注意，如果要赋的值存于admin对象里，要用admin指定，不然mybatis识别不了，因为我的password也是String类型的，
     * 而且只要是基本包装类，#{}里本来就可以不用写的和形参里一模一样，在这方面mybatis是不敏感的。总之，在形参里有对象类型和其他类型如String类型
     * 时候，最好把对象的值具体的表达出来。
     * @param admin
     * @param id
     * @param password
     * @return
     */
    @Update("update admin set admin_name=#{admin.adminName},admin_nickname=#{admin.adminNickname},admin_password=#{admin.adminPassword}," +
            "admin_profile_picture_src=#{admin.adminProfilePictureSrc} where admin_id=#{id} and admin_password = #{password} ")
    int updatePassword(Admin admin, Integer id,String password);
}
